package com.shengqi.xinnongren.common.md5;

import com.shengqi.xinnongren.common.config.user.UserManager;

/**
 * 加解密工具类
 * Created by LuoYaWei on 2018/3/13.
 */

public class SafeUtils {
    /**
     * 解密
     *
     * @param text    被加密文本
     * @return 解密文本
     */
    public static String decrypt(String text) {
        String iv = UserManager.getInstance().getIv();
        String key = UserManager.getInstance().getKey();
        try {
            return AESOperator.getInstance().decrypt(text, iv, key);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 加密
     *
     * @param text 待加密文本
     * @return 加密文本
     */
    public static String encrypt(String text) {
        String iv = UserManager.getInstance().getIv();
        String key = UserManager.getInstance().getKey();
        try {
            return AESOperator.getInstance().encrypt(text, iv, key);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取加密密码
     * 加密规则:明文密码加密一次取前18位后10位拼接,再加密一次取第5到25位
     *
     * @param pwd 原密码
     * @return 加密密码
     */
    public static String getEncryptPwd(String pwd) {
        String s = MD5.getMD5(pwd).substring(0, 18) + MD5.getMD5(pwd).substring(MD5.getMD5(pwd).length() - 10, MD5.getMD5(pwd).length());
        return MD5.getMD5(s.toUpperCase()).substring(4, 25).toUpperCase();
    }

    public static void main(String[] args) {
        System.out.println(getEncryptPwd("123456"));
    }
}
